<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>fdk-aac: original/libSBRdec/src/env_extr.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">fdk-aac
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_ed137715e08969a186ec660e8ae6e2fb.html">original</a></li><li class="navelem"><a class="el" href="dir_222de58a05c98cc4a78309a37525cd28.html">libSBRdec</a></li><li class="navelem"><a class="el" href="dir_c997d48ad60fbe63e2ba342b9c79db98.html">src</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">env_extr.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Envelope extraction prototypes.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;sbrdecoder.h&quot;</code><br />
<code>#include &quot;FDK_bitstream.h&quot;</code><br />
<code>#include &quot;<a class="el" href="lpp__tran_8h_source.html">lpp_tran.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="psdec_8h_source.html">psdec.h</a>&quot;</code><br />
<code>#include &quot;pvc_dec.h&quot;</code><br />
</div>
<p><a href="env__extr_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_f_r_e_q___b_a_n_d___d_a_t_a.html">FREQ_BAND_DATA</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_s_b_r___h_e_a_d_e_r___d_a_t_a___b_s___i_n_f_o.html">SBR_HEADER_DATA_BS_INFO</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_s_b_r___h_e_a_d_e_r___d_a_t_a___b_s.html">SBR_HEADER_DATA_BS</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_s_b_r___h_e_a_d_e_r___d_a_t_a.html">SBR_HEADER_DATA</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_f_r_a_m_e___i_n_f_o.html">FRAME_INFO</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_s_b_r___p_r_e_v___f_r_a_m_e___d_a_t_a.html">SBR_PREV_FRAME_DATA</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_s_b_r___f_r_a_m_e___d_a_t_a.html">SBR_FRAME_DATA</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a83c79d74b333c0c92ef16e926b13adbd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="env__extr_8h.html#a83c79d74b333c0c92ef16e926b13adbd">ENV_EXP_FRACT</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a83c79d74b333c0c92ef16e926b13adbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a243a4bc9f36376a6877615103d429517"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="env__extr_8h.html#a243a4bc9f36376a6877615103d429517">EXP_BITS</a>&#160;&#160;&#160;6</td></tr>
<tr class="separator:a243a4bc9f36376a6877615103d429517"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a419b54075ef5e0548f1403e06543e208"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="env__extr_8h.html#a419b54075ef5e0548f1403e06543e208">MASK_M</a></td></tr>
<tr class="separator:a419b54075ef5e0548f1403e06543e208"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac853d2ffc70f5ef5909aebceb474aa4a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="env__extr_8h.html#ac853d2ffc70f5ef5909aebceb474aa4a">MASK_E</a>&#160;&#160;&#160;  ((1 &lt;&lt; <a class="el" href="env__extr_8h.html#a243a4bc9f36376a6877615103d429517">EXP_BITS</a>) - 1)</td></tr>
<tr class="separator:ac853d2ffc70f5ef5909aebceb474aa4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59426b05625b098c0d0a87556e3e8579"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="env__extr_8h.html#a59426b05625b098c0d0a87556e3e8579">SIGN_EXT</a></td></tr>
<tr class="separator:a59426b05625b098c0d0a87556e3e8579"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a784eca967c39e32b3fa60a2180c427ee"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="env__extr_8h.html#a784eca967c39e32b3fa60a2180c427ee">ROUNDING</a></td></tr>
<tr class="separator:a784eca967c39e32b3fa60a2180c427ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3efea4334691cb3e986013e4a45cbd7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="env__extr_8h.html#aa3efea4334691cb3e986013e4a45cbd7">NRG_EXP_OFFSET</a>&#160;&#160;&#160;  16</td></tr>
<tr class="separator:aa3efea4334691cb3e986013e4a45cbd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a629cfd9c639f5f99318096be22b69cff"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="env__extr_8h.html#a629cfd9c639f5f99318096be22b69cff">NOISE_EXP_OFFSET</a>&#160;&#160;&#160;  38</td></tr>
<tr class="separator:a629cfd9c639f5f99318096be22b69cff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b33ae8f0163018cbe8c43475618f6e0"><td class="memItemLeft" align="right" valign="top"><a id="a1b33ae8f0163018cbe8c43475618f6e0"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ADD_HARMONICS_FLAGS_SIZE</b>&#160;&#160;&#160;2 /* ceil(MAX_FREQ_COEFFS/32) */</td></tr>
<tr class="separator:a1b33ae8f0163018cbe8c43475618f6e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4384b9569373488c672dd67e75a31cf"><td class="memItemLeft" align="right" valign="top"><a id="ae4384b9569373488c672dd67e75a31cf"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>SBRDEC_ELD_GRID</b>&#160;&#160;&#160;1</td></tr>
<tr class="separator:ae4384b9569373488c672dd67e75a31cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab769e53be7f54741ab8fe0910374989b"><td class="memItemLeft" align="right" valign="top"><a id="ab769e53be7f54741ab8fe0910374989b"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>SBRDEC_SYNTAX_SCAL</b>&#160;&#160;&#160;2</td></tr>
<tr class="separator:ab769e53be7f54741ab8fe0910374989b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab85a6fec0ae45c4846af8c4af8cc0541"><td class="memItemLeft" align="right" valign="top"><a id="ab85a6fec0ae45c4846af8c4af8cc0541"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>SBRDEC_SYNTAX_USAC</b>&#160;&#160;&#160;4</td></tr>
<tr class="separator:ab85a6fec0ae45c4846af8c4af8cc0541"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a229233dcf7ab72a8f8276f75a6517765"><td class="memItemLeft" align="right" valign="top"><a id="a229233dcf7ab72a8f8276f75a6517765"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>SBRDEC_SYNTAX_RSVD50</b>&#160;&#160;&#160;8</td></tr>
<tr class="separator:a229233dcf7ab72a8f8276f75a6517765"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9d9208b9304132add638a108cbc1d0a"><td class="memItemLeft" align="right" valign="top"><a id="ad9d9208b9304132add638a108cbc1d0a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>SBRDEC_USAC_INDEP</b>&#160;&#160;&#160;  16 /* Flag indicating that USAC global independency flag is active. */</td></tr>
<tr class="separator:ad9d9208b9304132add638a108cbc1d0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a6ec815ebe7f2bab46b45788f2aa44b"><td class="memItemLeft" align="right" valign="top"><a id="a4a6ec815ebe7f2bab46b45788f2aa44b"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>SBRDEC_LOW_POWER</b>&#160;&#160;&#160;  32 /* Flag indicating that Low Power QMF mode shall be used. */</td></tr>
<tr class="separator:a4a6ec815ebe7f2bab46b45788f2aa44b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cd600c4f39e7d19f9cb93e32385a409"><td class="memItemLeft" align="right" valign="top"><a id="a3cd600c4f39e7d19f9cb93e32385a409"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>SBRDEC_PS_DECODED</b>&#160;&#160;&#160;  64 /* Flag indicating that PS was decoded and rendered. */</td></tr>
<tr class="separator:a3cd600c4f39e7d19f9cb93e32385a409"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20c2c91850053d6c88c4766f3de1c6db"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>SBRDEC_QUAD_RATE</b></td></tr>
<tr class="separator:a20c2c91850053d6c88c4766f3de1c6db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d942e785559a8b34c266d4f09f63795"><td class="memItemLeft" align="right" valign="top"><a id="a4d942e785559a8b34c266d4f09f63795"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>SBRDEC_USAC_HARMONICSBR</b>&#160;&#160;&#160;  256 /* Flag indicating that USAC HBE tool is active. */</td></tr>
<tr class="separator:a4d942e785559a8b34c266d4f09f63795"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7c7ce1ec3d711daccb005b0baab4c02"><td class="memItemLeft" align="right" valign="top"><a id="ad7c7ce1ec3d711daccb005b0baab4c02"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>SBRDEC_LD_MPS_QMF</b>&#160;&#160;&#160;  512 /* Flag indicating that the LD-MPS QMF shall be used. */</td></tr>
<tr class="separator:ad7c7ce1ec3d711daccb005b0baab4c02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3337e8af23ca68f8e9094cade9397226"><td class="memItemLeft" align="right" valign="top"><a id="a3337e8af23ca68f8e9094cade9397226"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>SBRDEC_USAC_ITES</b>&#160;&#160;&#160;  1024 /* Flag indicating that USAC inter TES tool is active. */</td></tr>
<tr class="separator:a3337e8af23ca68f8e9094cade9397226"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0756fae4f7aabc9c4bc406f9f44d4320"><td class="memItemLeft" align="right" valign="top"><a id="a0756fae4f7aabc9c4bc406f9f44d4320"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>SBRDEC_SYNTAX_DRM</b>&#160;&#160;&#160;  2048 /* Flag indicating that DRM30/DRM+ reverse syntax is being used. */</td></tr>
<tr class="separator:a0756fae4f7aabc9c4bc406f9f44d4320"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac124e08e49cacca19694d03554519cbd"><td class="memItemLeft" align="right" valign="top"><a id="ac124e08e49cacca19694d03554519cbd"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>SBRDEC_ELD_DOWNSCALE</b>&#160;&#160;&#160;  4096 /* Flag indicating that ELD downscaled mode decoding is used */</td></tr>
<tr class="separator:ac124e08e49cacca19694d03554519cbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2edad963728508769a4701ed9223077e"><td class="memItemLeft" align="right" valign="top"><a id="a2edad963728508769a4701ed9223077e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>SBRDEC_DOWNSAMPLE</b>&#160;&#160;&#160;  8192 /* Flag indicating that the downsampling mode is used. */</td></tr>
<tr class="separator:a2edad963728508769a4701ed9223077e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad360ec36736475bf74b523eb0c0f3b68"><td class="memItemLeft" align="right" valign="top"><a id="ad360ec36736475bf74b523eb0c0f3b68"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>SBRDEC_FLUSH</b>&#160;&#160;&#160;16384 /* Flag is used to flush all elements in use. */</td></tr>
<tr class="separator:ad360ec36736475bf74b523eb0c0f3b68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9651a2625080be7f06097e5b34807640"><td class="memItemLeft" align="right" valign="top"><a id="a9651a2625080be7f06097e5b34807640"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>SBRDEC_FORCE_RESET</b>&#160;&#160;&#160;  32768 /* Flag is used to force a reset of all elements in use. */</td></tr>
<tr class="separator:a9651a2625080be7f06097e5b34807640"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01b4027cc5d0275f468806fb9e879e61"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>SBRDEC_SKIP_QMF_ANA</b></td></tr>
<tr class="separator:a01b4027cc5d0275f468806fb9e879e61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af800d5a981626972e3365fddad1bbafe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>SBRDEC_SKIP_QMF_SYN</b></td></tr>
<tr class="separator:af800d5a981626972e3365fddad1bbafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad17f8f9ad6f9e6902ddf7933c8964635"><td class="memItemLeft" align="right" valign="top"><a id="ad17f8f9ad6f9e6902ddf7933c8964635"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>SBRDEC_HDR_STAT_RESET</b>&#160;&#160;&#160;1</td></tr>
<tr class="separator:ad17f8f9ad6f9e6902ddf7933c8964635"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a409e2cec074125afbde672fabaa0c932"><td class="memItemLeft" align="right" valign="top"><a id="a409e2cec074125afbde672fabaa0c932"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>SBRDEC_HDR_STAT_UPDATE</b>&#160;&#160;&#160;2</td></tr>
<tr class="separator:a409e2cec074125afbde672fabaa0c932"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3dc1eee7a283a838b160263eff2d3232"><td class="memItemLeft" align="right" valign="top"><a id="a3dc1eee7a283a838b160263eff2d3232"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>SCALE2EXP</b>(s)&#160;&#160;&#160;(15 - (s))</td></tr>
<tr class="separator:a3dc1eee7a283a838b160263eff2d3232"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afded085db259f642d608c1d67216c3fd"><td class="memItemLeft" align="right" valign="top"><a id="afded085db259f642d608c1d67216c3fd"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>EXP2SCALE</b>(e)&#160;&#160;&#160;(15 - (e))</td></tr>
<tr class="separator:afded085db259f642d608c1d67216c3fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:abab1fb08a5b55711651b34d5360a4efe"><td class="memItemLeft" align="right" valign="top"><a id="abab1fb08a5b55711651b34d5360a4efe"></a>
typedef <a class="el" href="struct_f_r_e_q___b_a_n_d___d_a_t_a.html">FREQ_BAND_DATA</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>HANDLE_FREQ_BAND_DATA</b></td></tr>
<tr class="separator:abab1fb08a5b55711651b34d5360a4efe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a724716eb2c498535f667aab59f91df2d"><td class="memItemLeft" align="right" valign="top"><a id="a724716eb2c498535f667aab59f91df2d"></a>
typedef <a class="el" href="struct_s_b_r___h_e_a_d_e_r___d_a_t_a.html">SBR_HEADER_DATA</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>HANDLE_SBR_HEADER_DATA</b></td></tr>
<tr class="separator:a724716eb2c498535f667aab59f91df2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad472755a85f52fe38ed618d58659de05"><td class="memItemLeft" align="right" valign="top"><a id="ad472755a85f52fe38ed618d58659de05"></a>
typedef <a class="el" href="struct_s_b_r___p_r_e_v___f_r_a_m_e___d_a_t_a.html">SBR_PREV_FRAME_DATA</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>HANDLE_SBR_PREV_FRAME_DATA</b></td></tr>
<tr class="separator:ad472755a85f52fe38ed618d58659de05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa32c2e8ea3f1668d7f4e68455d6741b9"><td class="memItemLeft" align="right" valign="top"><a id="aa32c2e8ea3f1668d7f4e68455d6741b9"></a>
typedef <a class="el" href="struct_s_b_r___f_r_a_m_e___d_a_t_a.html">SBR_FRAME_DATA</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>HANDLE_SBR_FRAME_DATA</b></td></tr>
<tr class="separator:aa32c2e8ea3f1668d7f4e68455d6741b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a6db65339ebdc22c0cf6b7fa892ac3876"><td class="memItemLeft" align="right" valign="top"><a id="a6db65339ebdc22c0cf6b7fa892ac3876"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>SBR_HEADER_STATUS</b> { <b>HEADER_NOT_PRESENT</b>
, <b>HEADER_ERROR</b>
, <b>HEADER_OK</b>
, <b>HEADER_RESET</b>
 }</td></tr>
<tr class="separator:a6db65339ebdc22c0cf6b7fa892ac3876"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4c559f820d7e95eb9ad26725bf26b80"><td class="memItemLeft" align="right" valign="top"><a id="ab4c559f820d7e95eb9ad26725bf26b80"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>SBR_SYNC_STATE</b> { <b>SBR_NOT_INITIALIZED</b> = 0
, <b>UPSAMPLING</b> = 1
, <b>SBR_HEADER</b> = 2
, <b>SBR_ACTIVE</b> = 3
 }</td></tr>
<tr class="separator:ab4c559f820d7e95eb9ad26725bf26b80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ad0d7f2a8baa6de041b16392f8ab041"><td class="memItemLeft" align="right" valign="top"><a id="a7ad0d7f2a8baa6de041b16392f8ab041"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>COUPLING_MODE</b> { <b>COUPLING_OFF</b> = 0
, <b>COUPLING_LEVEL</b>
, <b>COUPLING_BAL</b>
 }</td></tr>
<tr class="separator:a7ad0d7f2a8baa6de041b16392f8ab041"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a834a02ed658664a4ef15965e413a9692"><td class="memItemLeft" align="right" valign="top"><a class="el" href="machine__type_8h.html#afff0ab3629a68bc1bb3b2a2f4296173f">UINT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="env__extr_8h.html#a834a02ed658664a4ef15965e413a9692">sbrdec_mapToStdSampleRate</a> (<a class="el" href="machine__type_8h.html#afff0ab3629a68bc1bb3b2a2f4296173f">UINT</a> fs, <a class="el" href="machine__type_8h.html#afff0ab3629a68bc1bb3b2a2f4296173f">UINT</a> isUsac)</td></tr>
<tr class="memdesc:a834a02ed658664a4ef15965e413a9692"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maps sampling frequencies to frequencies for which setup tables are available.  <a href="env__extr_8h.html#a834a02ed658664a4ef15965e413a9692">More...</a><br /></td></tr>
<tr class="separator:a834a02ed658664a4ef15965e413a9692"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08ce0b9b82b24d120c26393e8244a053"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="env__extr_8h.html#a08ce0b9b82b24d120c26393e8244a053">initSbrPrevFrameData</a> (<a class="el" href="struct_s_b_r___p_r_e_v___f_r_a_m_e___d_a_t_a.html">HANDLE_SBR_PREV_FRAME_DATA</a> h_prev_data, int timeSlots)</td></tr>
<tr class="memdesc:a08ce0b9b82b24d120c26393e8244a053"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the <a class="el" href="struct_s_b_r___p_r_e_v___f_r_a_m_e___d_a_t_a.html">SBR_PREV_FRAME_DATA</a> struct.  <a href="env__extr_8h.html#a08ce0b9b82b24d120c26393e8244a053">More...</a><br /></td></tr>
<tr class="separator:a08ce0b9b82b24d120c26393e8244a053"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab813dd74c893e15cfae0c53a87edbea9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="env__extr_8h.html#ab813dd74c893e15cfae0c53a87edbea9">sbrGetChannelElement</a> (<a class="el" href="struct_s_b_r___h_e_a_d_e_r___d_a_t_a.html">HANDLE_SBR_HEADER_DATA</a> hHeaderData, <a class="el" href="struct_s_b_r___f_r_a_m_e___d_a_t_a.html">HANDLE_SBR_FRAME_DATA</a> hFrameDataLeft, <a class="el" href="struct_s_b_r___f_r_a_m_e___d_a_t_a.html">HANDLE_SBR_FRAME_DATA</a> hFrameDataRight, <a class="el" href="struct_s_b_r___p_r_e_v___f_r_a_m_e___d_a_t_a.html">HANDLE_SBR_PREV_FRAME_DATA</a> hFrameDataLeftPrev, <a class="el" href="machine__type_8h.html#aed5a2dbe32af3a91203f0f5e8697e873">UCHAR</a> pvc_mode_last, <a class="el" href="struct_f_d_k___b_i_t_s_t_r_e_a_m.html">HANDLE_FDK_BITSTREAM</a> hBitBuf, <a class="el" href="struct_p_s___d_e_c.html">HANDLE_PS_DEC</a> hParametricStereoDec, const <a class="el" href="machine__type_8h.html#afff0ab3629a68bc1bb3b2a2f4296173f">UINT</a> flags, const int overlap)</td></tr>
<tr class="memdesc:ab813dd74c893e15cfae0c53a87edbea9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read bitstream elements of a SBR channel element.  <a href="env__extr_8h.html#ab813dd74c893e15cfae0c53a87edbea9">More...</a><br /></td></tr>
<tr class="separator:ab813dd74c893e15cfae0c53a87edbea9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6eb3ef78f47c7e292e69fb6d5055625a"><td class="memItemLeft" align="right" valign="top">SBR_HEADER_STATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="env__extr_8h.html#a6eb3ef78f47c7e292e69fb6d5055625a">sbrGetHeaderData</a> (<a class="el" href="struct_s_b_r___h_e_a_d_e_r___d_a_t_a.html">HANDLE_SBR_HEADER_DATA</a> headerData, <a class="el" href="struct_f_d_k___b_i_t_s_t_r_e_a_m.html">HANDLE_FDK_BITSTREAM</a> hBitBuf, const <a class="el" href="machine__type_8h.html#afff0ab3629a68bc1bb3b2a2f4296173f">UINT</a> flags, const int fIsSbrData, const <a class="el" href="machine__type_8h.html#aed5a2dbe32af3a91203f0f5e8697e873">UCHAR</a> configMode)</td></tr>
<tr class="memdesc:a6eb3ef78f47c7e292e69fb6d5055625a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read header data from bitstream.  <a href="env__extr_8h.html#a6eb3ef78f47c7e292e69fb6d5055625a">More...</a><br /></td></tr>
<tr class="separator:a6eb3ef78f47c7e292e69fb6d5055625a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad399fccff96bf713878d8f872bd3c53a"><td class="memItemLeft" align="right" valign="top">SBR_ERROR&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="env__extr_8h.html#ad399fccff96bf713878d8f872bd3c53a">initHeaderData</a> (<a class="el" href="struct_s_b_r___h_e_a_d_e_r___d_a_t_a.html">HANDLE_SBR_HEADER_DATA</a> hHeaderData, const int sampleRateIn, const int sampleRateOut, const <a class="el" href="machine__type_8h.html#a4cf9af43a95c45c3d469658098dfbe1a">INT</a> downscaleFactor, const int samplesPerFrame, const <a class="el" href="machine__type_8h.html#afff0ab3629a68bc1bb3b2a2f4296173f">UINT</a> flags, const int setDefaultHdr)</td></tr>
<tr class="memdesc:ad399fccff96bf713878d8f872bd3c53a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize SBR header data.  <a href="env__extr_8h.html#ad399fccff96bf713878d8f872bd3c53a">More...</a><br /></td></tr>
<tr class="separator:ad399fccff96bf713878d8f872bd3c53a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Envelope extraction prototypes. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a83c79d74b333c0c92ef16e926b13adbd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83c79d74b333c0c92ef16e926b13adbd">&#9670;&nbsp;</a></span>ENV_EXP_FRACT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ENV_EXP_FRACT&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Shift raw envelope data to support fractional numbers. Can be set to 8 instead of 0 to enhance accuracy during concealment. This is not required for conformance and requantizeEnvelopeData() will become more expensive. </p>

</div>
</div>
<a id="a243a4bc9f36376a6877615103d429517"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a243a4bc9f36376a6877615103d429517">&#9670;&nbsp;</a></span>EXP_BITS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EXP_BITS&#160;&#160;&#160;6</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Size of exponent-part of a pseudo float envelope value (should be at least 6). The remaining bits in each word are used for the mantissa (should be at least 10). This format is used in the arrays iEnvelope[] and sbrNoiseFloorLevel[] in the FRAME_DATA struct which must fit in a certain part of the output buffer (See buffer management in <a class="el" href="sbr__dec_8cpp.html" title="Sbr decoder This module provides the actual decoder implementation. The SBR data (side information) i...">sbr_dec.cpp</a>). Exponents and mantissas could also be stored in separate arrays. Accessing the exponent or the mantissa would be simplified and the masks <a class="el" href="env__extr_8h.html#ac853d2ffc70f5ef5909aebceb474aa4a">MASK_E</a> resp. <a class="el" href="env__extr_8h.html#a419b54075ef5e0548f1403e06543e208">MASK_M</a> would no longer be required. </p>

</div>
</div>
<a id="ac853d2ffc70f5ef5909aebceb474aa4a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac853d2ffc70f5ef5909aebceb474aa4a">&#9670;&nbsp;</a></span>MASK_E</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MASK_E&#160;&#160;&#160;  ((1 &lt;&lt; <a class="el" href="env__extr_8h.html#a243a4bc9f36376a6877615103d429517">EXP_BITS</a>) - 1)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Mask for extracting the exponent of a pseudo \ float envelope value </p>

</div>
</div>
<a id="a419b54075ef5e0548f1403e06543e208"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a419b54075ef5e0548f1403e06543e208">&#9670;&nbsp;</a></span>MASK_M</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MASK_M</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">  (((1 &lt;&lt; (FRACT_BITS - <a class="code" href="env__extr_8h.html#a243a4bc9f36376a6877615103d429517">EXP_BITS</a>)) - 1)                                 \</div>
<div class="line">   &lt;&lt; <a class="code" href="env__extr_8h.html#a243a4bc9f36376a6877615103d429517">EXP_BITS</a>)</div>
<div class="ttc" id="aenv__extr_8h_html_a243a4bc9f36376a6877615103d429517"><div class="ttname"><a href="env__extr_8h.html#a243a4bc9f36376a6877615103d429517">EXP_BITS</a></div><div class="ttdeci">#define EXP_BITS</div><div class="ttdef"><b>Definition:</b> env_extr.h:126</div></div>
</div><!-- fragment --><p>Mask for extracting the mantissa of a pseudo float \ envelope value </p>

</div>
</div>
<a id="a629cfd9c639f5f99318096be22b69cff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a629cfd9c639f5f99318096be22b69cff">&#9670;&nbsp;</a></span>NOISE_EXP_OFFSET</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NOISE_EXP_OFFSET&#160;&#160;&#160;  38</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Will be added to the noise level exponent to prevent negative \ numbers </p>

</div>
</div>
<a id="aa3efea4334691cb3e986013e4a45cbd7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa3efea4334691cb3e986013e4a45cbd7">&#9670;&nbsp;</a></span>NRG_EXP_OFFSET</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NRG_EXP_OFFSET&#160;&#160;&#160;  16</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Will be added to the reference energy's exponent to prevent negative \ numbers </p>

</div>
</div>
<a id="a784eca967c39e32b3fa60a2180c427ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a784eca967c39e32b3fa60a2180c427ee">&#9670;&nbsp;</a></span>ROUNDING</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ROUNDING</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">  ((FIXP_SGL)(                                                             \</div>
<div class="line">      1 &lt;&lt; (<a class="code" href="env__extr_8h.html#a243a4bc9f36376a6877615103d429517">EXP_BITS</a> - 1)))</div>
</div><!-- fragment --><p>0.5-offset for rounding the mantissa of a \ pseudo-float envelope value </p>

</div>
</div>
<a id="a20c2c91850053d6c88c4766f3de1c6db"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a20c2c91850053d6c88c4766f3de1c6db">&#9670;&nbsp;</a></span>SBRDEC_QUAD_RATE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SBRDEC_QUAD_RATE</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">  128 <span class="comment">/* Flag indicating that USAC SBR 4:1 is active. \</span></div>
<div class="line"><span class="comment">       */</span></div>
</div><!-- fragment -->
</div>
</div>
<a id="a01b4027cc5d0275f468806fb9e879e61"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a01b4027cc5d0275f468806fb9e879e61">&#9670;&nbsp;</a></span>SBRDEC_SKIP_QMF_ANA</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SBRDEC_SKIP_QMF_ANA</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">  (1 &lt;&lt; 21) <span class="comment">/* Flag indicating that the input data is provided in the QMF \</span></div>
<div class="line"><span class="comment">               domain. */</span></div>
</div><!-- fragment -->
</div>
</div>
<a id="af800d5a981626972e3365fddad1bbafe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af800d5a981626972e3365fddad1bbafe">&#9670;&nbsp;</a></span>SBRDEC_SKIP_QMF_SYN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SBRDEC_SKIP_QMF_SYN</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">  (1 &lt;&lt; 22) <span class="comment">/* Flag indicating that the output data is exported in the QMF \</span></div>
<div class="line"><span class="comment">               domain. */</span></div>
</div><!-- fragment -->
</div>
</div>
<a id="a59426b05625b098c0d0a87556e3e8579"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59426b05625b098c0d0a87556e3e8579">&#9670;&nbsp;</a></span>SIGN_EXT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SIGN_EXT</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">  (((<a class="code" href="machine__type_8h.html#af3e70e9edd31fb299154d959c70ac6bf">SCHAR</a>)-1) ^ \</div>
<div class="line">   MASK_E)</div>
<div class="ttc" id="amachine__type_8h_html_af3e70e9edd31fb299154d959c70ac6bf"><div class="ttname"><a href="machine__type_8h.html#af3e70e9edd31fb299154d959c70ac6bf">SCHAR</a></div><div class="ttdeci">signed char SCHAR</div><div class="ttdef"><b>Definition:</b> machine_type.h:189</div></div>
</div><!-- fragment --><p>a CHAR-constant with all bits above our sign-bit set </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ad399fccff96bf713878d8f872bd3c53a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad399fccff96bf713878d8f872bd3c53a">&#9670;&nbsp;</a></span>initHeaderData()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SBR_ERROR initHeaderData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_b_r___h_e_a_d_e_r___d_a_t_a.html">HANDLE_SBR_HEADER_DATA</a>&#160;</td>
          <td class="paramname"><em>hHeaderData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>sampleRateIn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>sampleRateOut</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="machine__type_8h.html#a4cf9af43a95c45c3d469658098dfbe1a">INT</a>&#160;</td>
          <td class="paramname"><em>downscaleFactor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>samplesPerFrame</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="machine__type_8h.html#afff0ab3629a68bc1bb3b2a2f4296173f">UINT</a>&#160;</td>
          <td class="paramname"><em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>setDefaultHdr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize SBR header data. </p>
<p>Copy default values to the header data struct and patch some entries depending on the core codec. </p>

</div>
</div>
<a id="a08ce0b9b82b24d120c26393e8244a053"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a08ce0b9b82b24d120c26393e8244a053">&#9670;&nbsp;</a></span>initSbrPrevFrameData()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void initSbrPrevFrameData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_b_r___p_r_e_v___f_r_a_m_e___d_a_t_a.html">HANDLE_SBR_PREV_FRAME_DATA</a>&#160;</td>
          <td class="paramname"><em>h_prev_data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>timeSlots</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize the <a class="el" href="struct_s_b_r___p_r_e_v___f_r_a_m_e___d_a_t_a.html">SBR_PREV_FRAME_DATA</a> struct. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h_prev_data</td><td>handle to struct <a class="el" href="struct_s_b_r___p_r_e_v___f_r_a_m_e___d_a_t_a.html">SBR_PREV_FRAME_DATA</a> </td></tr>
    <tr><td class="paramname">timeSlots</td><td>Framelength in SBR-timeslots </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a834a02ed658664a4ef15965e413a9692"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a834a02ed658664a4ef15965e413a9692">&#9670;&nbsp;</a></span>sbrdec_mapToStdSampleRate()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="machine__type_8h.html#afff0ab3629a68bc1bb3b2a2f4296173f">UINT</a> sbrdec_mapToStdSampleRate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="machine__type_8h.html#afff0ab3629a68bc1bb3b2a2f4296173f">UINT</a>&#160;</td>
          <td class="paramname"><em>fs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="machine__type_8h.html#afff0ab3629a68bc1bb3b2a2f4296173f">UINT</a>&#160;</td>
          <td class="paramname"><em>isUsac</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Maps sampling frequencies to frequencies for which setup tables are available. </p>
<p>Maps arbitary sampling frequency to nearest neighbors for which setup tables are available (e.g. 25600 -&gt; 24000). Used for startFreq calculation. The mapping is defined in 14496-3 (4.6.18.2.6), fs(SBR), and table 4.82</p>
<dl class="section return"><dt>Returns</dt><dd>mapped sampling frequency Output sampling frequency </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">isUsac</td><td>Output sampling frequency </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ab813dd74c893e15cfae0c53a87edbea9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab813dd74c893e15cfae0c53a87edbea9">&#9670;&nbsp;</a></span>sbrGetChannelElement()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int sbrGetChannelElement </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_b_r___h_e_a_d_e_r___d_a_t_a.html">HANDLE_SBR_HEADER_DATA</a>&#160;</td>
          <td class="paramname"><em>hHeaderData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_s_b_r___f_r_a_m_e___d_a_t_a.html">HANDLE_SBR_FRAME_DATA</a>&#160;</td>
          <td class="paramname"><em>hFrameDataLeft</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_s_b_r___f_r_a_m_e___d_a_t_a.html">HANDLE_SBR_FRAME_DATA</a>&#160;</td>
          <td class="paramname"><em>hFrameDataRight</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_s_b_r___p_r_e_v___f_r_a_m_e___d_a_t_a.html">HANDLE_SBR_PREV_FRAME_DATA</a>&#160;</td>
          <td class="paramname"><em>hFrameDataLeftPrev</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="machine__type_8h.html#aed5a2dbe32af3a91203f0f5e8697e873">UCHAR</a>&#160;</td>
          <td class="paramname"><em>pvc_mode_last</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_f_d_k___b_i_t_s_t_r_e_a_m.html">HANDLE_FDK_BITSTREAM</a>&#160;</td>
          <td class="paramname"><em>hBs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_p_s___d_e_c.html">HANDLE_PS_DEC</a>&#160;</td>
          <td class="paramname"><em>hParametricStereoDec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="machine__type_8h.html#afff0ab3629a68bc1bb3b2a2f4296173f">UINT</a>&#160;</td>
          <td class="paramname"><em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>overlap</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read bitstream elements of a SBR channel element. </p>
<dl class="section return"><dt>Returns</dt><dd>SbrFrameOK </dd></dl>

</div>
</div>
<a id="a6eb3ef78f47c7e292e69fb6d5055625a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6eb3ef78f47c7e292e69fb6d5055625a">&#9670;&nbsp;</a></span>sbrGetHeaderData()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SBR_HEADER_STATUS sbrGetHeaderData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_b_r___h_e_a_d_e_r___d_a_t_a.html">HANDLE_SBR_HEADER_DATA</a>&#160;</td>
          <td class="paramname"><em>hHeaderData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_f_d_k___b_i_t_s_t_r_e_a_m.html">HANDLE_FDK_BITSTREAM</a>&#160;</td>
          <td class="paramname"><em>hBs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="machine__type_8h.html#afff0ab3629a68bc1bb3b2a2f4296173f">UINT</a>&#160;</td>
          <td class="paramname"><em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>fIsSbrData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="machine__type_8h.html#aed5a2dbe32af3a91203f0f5e8697e873">UCHAR</a>&#160;</td>
          <td class="paramname"><em>configMode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read header data from bitstream. </p>
<dl class="section return"><dt>Returns</dt><dd>error status - 0 if ok </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>
